Skip to content

让Linux用户sudo操作免密码

前言

当前用户不是 root 时,有些操作会因为权限不够而被拒绝,需要 sudo 才可以完成。但是每次 sudo 都需要输入密码,很烦,干脆修改 sudoers,让 sudo 不需要验证密码。

解决

为了防止改到 /etc/sudoers 的权限,而出现无法用 sudo 的问题,需要切到 root 用户,然后再修改 /etc/sudoers。

shell
$ su root
$ vim /etc/sudoers

可以看到有这么一段内容:

bash
##
## User privilege specification
##
root ALL=(ALL) ALL
%admin  ALL=(ALL) ALL

这两行是允许 root 用户和 admin 用户组的所有用户,在所有主机上执行所有命令,当然是需要 passwd 的。

如果想要免密码,可以添加 NOPASSWD: NOPASSWD:

TIP

但是建议不要直接改/etc/sudoers。 系统更新或者配置更新时该文件会被刷掉,而且可能会有权限问题。 建议在/etc/sudoers.d 目录下新建一个文件(名字不要带. 不要有~后缀)

例如给 bingo 用户添加免密码,编辑/etc/sudoers.d/sudonopasswd, 添加如下行

bash
bingo ALL=(ALL) NOPASSWD: NOPASSWD: ALL

以后 sudo 就不再需要密码验证了。

后话

最好要切换到 root 用户再改 sudoers,否则如果一不小心改了 sudoers 的 owner,sudo 就没办法用了,后果很严重。